package cn.powerone.scm.upload.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import cn.powerone.common.annotation.Excel;
import cn.powerone.common.core.domain.BaseEntity;

/**
 * 导入询价Batch对象 scm_import_inquiries_in
 * 
 * @author PowerOne
 * @date 2025-07-07
 */
@Setter
@Getter
public class ScmImportInquiriesIn extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 项目ID */
//    @Excel(name = "项目ID")
    private Long projectId;

    /** 产品ID */
//    @Excel(name = "产品ID")
    private Long productId;

    /** 图号 */
    @Excel(name = "図番", type = Excel.Type.IMPORT )
    private String drawingNumber;

    /** 版本号 */
    @Excel(name = "リビジョン", type = Excel.Type.IMPORT)
    private String version;

    /** 内部版本号 */
//    @Excel(name = "内部版本号")
    private Long internalVersion;

    /** 产品名称 */
    @Excel(name = "品名", type = Excel.Type.IMPORT)
    private String productName;

    /** 产品状态：0- 1待定 2草定 3确定 4作废 */
//    @Excel(name = "产品状态：0- 1待定 2草定 3确定 4作废")
    private Long productStatus;

    /** 采购类型 */
    @Excel(name = "采购类型", type = Excel.Type.IMPORT, dictType = "scm_purchase_category" )
    private Long purchaseCategory;

    /** 需求类型 */
    @Excel(name = "部品类型", type = Excel.Type.IMPORT, dictType = "scm_demand_type")
    private Long demandType;

    /** 图纸结构 */
    @Excel(name = "図面構成", type = Excel.Type.IMPORT)
    private String drawingComposition;

    /** 型号 */
    @Excel(name = "型号", type = Excel.Type.IMPORT)
    private String model;

    /** 颜色 */
    @Excel(name = "颜色", type = Excel.Type.IMPORT)
    private String color;

    /** 材质 */
    @Excel(name = "材質", type = Excel.Type.IMPORT)
    private String material;

    /** 阻燃等级 */
    @Excel(name = "阻燃等级")
    private String inflamingRetardingLevel;

    /** 规格型号 */
    @Excel(name = "規格", type = Excel.Type.IMPORT)
    private String specification;

    /** 产品备注 */
    @Excel(name = "交渉内容", type = Excel.Type.IMPORT)
    private String productRemark;

    /** 单台数量 */
    @Excel(name = "单台数量", type = Excel.Type.IMPORT)
    private BigDecimal onceQuantity;

    /** 单台单位 */
    @Excel(name = "单台单位", type = Excel.Type.IMPORT)
    private String onceUnit;

    /** 月数量 */
    @Excel(name = "月数量", type = Excel.Type.IMPORT)
    private BigDecimal monthlyQuantity;

    /** 月单位 */
    @Excel(name = "月单位", type = Excel.Type.IMPORT)
    private String monthlyUnit;

    /** 年数量 */
    @Excel(name = "年数量", type = Excel.Type.IMPORT)
    private BigDecimal yearlyQuantity;

    /** 年单位 */
    @Excel(name = "年单位", type = Excel.Type.IMPORT)
    private String yearlyUnit;

    /** 一次性数量 */
    @Excel(name = "一次性数量", type = Excel.Type.IMPORT)
    private BigDecimal disposableQuantity;

    /** 一次性单位 */
    @Excel(name = "一次性单位", type = Excel.Type.IMPORT)
    private String disposableUnit;

    /** 一次性目标单价 */
    @Excel(name = "一次目标单价")
    private BigDecimal disposableUnitPrice;

    /** 一次性希望纳期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "一次性希望纳期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date disposableExpectedDeliveryDate;

    /** 一次性试做数量 */
    @Excel(name = "一次性試作数量", type = Excel.Type.IMPORT)
    private BigDecimal disposableTryQuantity;

    /** 一次性试做单位 */
    @Excel(name = "一次性試作单位", type = Excel.Type.IMPORT)
    private String disposableTryUnit;

    /** 一次性目标单价 */
    @Excel(name = "一次性試作目标单价")
    private BigDecimal disposableTryUnitPrice;

    /** 一次性试希望纳期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "一次性試作希望纳期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date disposableTryExpectedDeliveryDate;

    /** 试做数量 */
    @Excel(name = "試作数量", type = Excel.Type.IMPORT)
    private BigDecimal tryQuantity;

    /** 试做单位 */
    @Excel(name = "試作单位", type = Excel.Type.IMPORT)
    private String tryUnit;

    /** 试做目标单价 */
    @Excel(name = "試作目标单价")
    private BigDecimal tryUnitPrice;

    /** 试做希望纳期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "試作希望纳期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date tryExpectedDeliveryDate;

    /** 量产数量 */
    @Excel(name = "量産数量", type = Excel.Type.IMPORT)
    private BigDecimal massQuantity;

    /** 量产单位 */
    @Excel(name = "量産单位", type = Excel.Type.IMPORT)
    private String massUnit;

    /** 量产目标单价 */
    @Excel(name = "量产目标单价")
    private BigDecimal massUnitPrice;

    /** 量产希望纳期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "量产希望纳期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date massExpectedDeliveryDate;

    /** 需求资料 */
    @Excel(name = "希望資料", type = Excel.Type.IMPORT)
    private String expectedDatum;

    /** 希望报价日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "希望見積日", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.IMPORT)
    private Date expectedQuotationDate;

    /** 希望到货日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "希望納期", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.IMPORT)
    private Date expectedDeliveryDate;

    /** 备注 */
    @Excel(name = "备注", type = Excel.Type.IMPORT)
    private String remarks;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("productId", getProductId())
            .append("drawingNumber", getDrawingNumber())
            .append("version", getVersion())
            .append("internalVersion", getInternalVersion())
            .append("productName", getProductName())
            .append("model", getModel())
            .append("color", getColor())
            .append("productStatus", getProductStatus())
            .append("drawingComposition", getDrawingComposition())
            .append("productRemark", getProductRemark())
            .append("purchaseCategory", getPurchaseCategory())
            .append("demandType", getDemandType())
            .append("material", getMaterial())
            .append("specification", getSpecification())
            .append("onceQuantity", getOnceQuantity())
            .append("onceUnit", getOnceUnit())
            .append("monthlyQuantity", getMonthlyQuantity())
            .append("monthlyUnit", getMonthlyUnit())
            .append("yearlyQuantity", getYearlyQuantity())
            .append("yearlyUnit", getYearlyUnit())
            .append("disposableQuantity", getDisposableQuantity())
            .append("disposableUnit", getDisposableUnit())
            .append("disposableTryQuantity", getDisposableTryQuantity())
            .append("disposableTryUnit", getDisposableTryUnit())
            .append("tryQuantity", getTryQuantity())
            .append("tryUnit", getTryUnit())
            .append("massQuantity", getMassQuantity())
            .append("massUnit", getMassUnit())
            .append("expectedQuotationDate", getExpectedQuotationDate())
            .append("expectedDeliveryDate", getExpectedDeliveryDate())
            .append("expectedDatum", getExpectedDatum())
            .append("remarks", getRemarks())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
